//2023年5月15日
public class n1 {
     //.java 源文件    ————编译javac
	//.calss  字节码文件  ————执行Java
	//字节码文件，可以通过‘Javap’进行解析
	
	//jvm  Java虚拟机
	//jvm内存结构(堆、栈、方法区，寄存器，常量池、本地方法栈），不同的Java版本，上述结构的位置不同，有包含关系，也有平行关系。
	//
	//方法区：存储类的描述信息。
	//klass （变量，变量名，变量空间，偏移地址）    
	//类!:{属性———变量——常量，构造器，方法}变量，数据类型，变量名，初始值。
	//CPU运行方法中的代码，栈结构，辅助CPU运算，存储运行过程中产生的数据，以及记录运行的进度等等。
	//变量表？？？方法表（存在“方法区”）
	
	//java面向对象，创建的'对象'保存在“堆”中。
	
	
	
	
	//变量范围:类变量（静态变量，写在 class 中，用static，加载‘字节码’就分配空间），
	//局部变量（在方法里面），在方法运行时，分配存储空间，在栈中开辟内存，区域叫本地变量表（local chart）
	//main()  本地变量————args 、d1、d2
	//实例变量（成员变量，写在class级别），创建对象的时候分配存储空间
	//
	
	
	//new构造器————分配存储空间——实现数据归零
	public int a;
	public int b;
	public long c;
	public double d;
	public String e;
	public int []f;
	
	public void method1() {}	
	public  void method2() {}
	public void method3() {}
	public void method4() {}
	
	//main 运行时创建栈帧1，本地变量args、d1  d2
	public  static void main(String [] args) {
	//在 堆中   根据方法区的描述的大小，创建存储空间
		//调用构造器堆出新空间，将new的地址作为一个参数保存下来
		//第一个参数  起名叫 this 
	//创建了一个地址 #0011  ，将数据保存在d1变量中
		n1 d1=new n1();
		//new开辟储存空间，归零
		//
		n1 d2 =new n1();

		d1 =d2;
		d1.a=10;
		d1.method2();
	}
		
}
